+Wed Jul 1 20:58:46 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c: temporary implementation of action signal "debug_msg"
+
+ * gtk/gtkbindings.c (gtk_binding_entry_add_signal): fixed an off-by-one
+ error that prevented signal to entry addition for signals with
+ parameters.
+
Wed Jul 1 10:05:36 PDT 1998 Manish Singh <yosh@gimp.org>
* ltconfig: fix for properly detecting shared lib support on
+Wed Jul 1 20:58:46 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c: temporary implementation of action signal "debug_msg"
+
+ * gtk/gtkbindings.c (gtk_binding_entry_add_signal): fixed an off-by-one
+ error that prevented signal to entry addition for signals with
+ parameters.
+
Wed Jul 1 10:05:36 PDT 1998 Manish Singh <yosh@gimp.org>
* ltconfig: fix for properly detecting shared lib support on
+Wed Jul 1 20:58:46 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c: temporary implementation of action signal "debug_msg"
+
+ * gtk/gtkbindings.c (gtk_binding_entry_add_signal): fixed an off-by-one
+ error that prevented signal to entry addition for signals with
+ parameters.
+
Wed Jul 1 10:05:36 PDT 1998 Manish Singh <yosh@gimp.org>
* ltconfig: fix for properly detecting shared lib support on
+Wed Jul 1 20:58:46 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c: temporary implementation of action signal "debug_msg"
+
+ * gtk/gtkbindings.c (gtk_binding_entry_add_signal): fixed an off-by-one
+ error that prevented signal to entry addition for signals with
+ parameters.
+
Wed Jul 1 10:05:36 PDT 1998 Manish Singh <yosh@gimp.org>
* ltconfig: fix for properly detecting shared lib support on
+Wed Jul 1 20:58:46 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c: temporary implementation of action signal "debug_msg"
+
+ * gtk/gtkbindings.c (gtk_binding_entry_add_signal): fixed an off-by-one
+ error that prevented signal to entry addition for signals with
+ parameters.
+
Wed Jul 1 10:05:36 PDT 1998 Manish Singh <yosh@gimp.org>
* ltconfig: fix for properly detecting shared lib support on
+Wed Jul 1 20:58:46 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c: temporary implementation of action signal "debug_msg"
+
+ * gtk/gtkbindings.c (gtk_binding_entry_add_signal): fixed an off-by-one
+ error that prevented signal to entry addition for signals with
+ parameters.
+
Wed Jul 1 10:05:36 PDT 1998 Manish Singh <yosh@gimp.org>
* ltconfig: fix for properly detecting shared lib support on
+Wed Jul 1 20:58:46 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c: temporary implementation of action signal "debug_msg"
+
+ * gtk/gtkbindings.c (gtk_binding_entry_add_signal): fixed an off-by-one
+ error that prevented signal to entry addition for signals with
+ parameters.
+
Wed Jul 1 10:05:36 PDT 1998 Manish Singh <yosh@gimp.org>
* ltconfig: fix for properly detecting shared lib support on
gtk_accelerator_name (guint accelerator_key,
GdkModifierType accelerator_mods)
{
+ static const gchar text_release[] = "<Release>";
static const gchar text_shift[] = "<Shift>";
static const gchar text_control[] = "<Control>";
- static const gchar text_release[] = "<Release>";
static const gchar text_mod1[] = "<Alt>";
static const gchar text_mod2[] = "<Mod2>";
static const gchar text_mod3[] = "<Mod3>";
keyval_name = "";
l = 0;
+ if (accelerator_mods & GDK_RELEASE_MASK)
+ l += sizeof (text_release) - 1;
if (accelerator_mods & GDK_SHIFT_MASK)
l += sizeof (text_shift) - 1;
if (accelerator_mods & GDK_CONTROL_MASK)
l += sizeof (text_control) - 1;
- if (accelerator_mods & GDK_RELEASE_MASK)
- l += sizeof (text_release) - 1;
if (accelerator_mods & GDK_MOD1_MASK)
l += sizeof (text_mod1) - 1;
if (accelerator_mods & GDK_MOD2_MASK)
l = 0;
accelerator[l] = 0;
+ if (accelerator_mods & GDK_RELEASE_MASK)
+ {
+ strcpy (accelerator + l, text_release);
+ l += sizeof (text_release) - 1;
+ }
if (accelerator_mods & GDK_SHIFT_MASK)
{
strcpy (accelerator + l, text_shift);
strcpy (accelerator + l, text_control);
l += sizeof (text_control) - 1;
}
- if (accelerator_mods & GDK_RELEASE_MASK)
- {
- strcpy (accelerator + l, text_release);
- l += sizeof (text_release) - 1;
- }
if (accelerator_mods & GDK_MOD1_MASK)
{
strcpy (accelerator + l, text_mod1);
if (!arg->d.string_data)
{
g_warning ("gtk_binding_entry_add_signal(): value of `string' arg[%u] is `NULL'", i);
- i = n_args + 2;
+ i += n_args + 1;
}
break;
default:
g_warning ("gtk_binding_entry_add_signal(): unsupported type `%s' for arg[%u]",
gtk_type_name (arg->arg_type), i);
- i = n_args + 2;
+ i += n_args + 1;
break;
}
}
va_end (args);
- if (i == n_args + 1 || i == 0)
+ if (i == n_args || i == 0)
{
slist = g_slist_reverse (slist);
gtk_binding_entry_add_signall (binding_set, keyval, modifiers, signal_name, slist);
const gchar *string);
-/* Binding sets
+/* type arguments for internal use only
*/
-
#define GTK_BINDING_ARG_INT (GTK_TYPE_INT)
#define GTK_BINDING_ARG_LONG (GTK_TYPE_LONG)
#define GTK_BINDING_ARG_FLOAT (GTK_TYPE_FLOAT)
#define GTK_BINDING_ARG_DOUBLE (GTK_TYPE_DOUBLE)
#define GTK_BINDING_ARG_STRING (GTK_TYPE_STRING)
+/* Binding sets
+ */
+
typedef struct _GtkBindingSet GtkBindingSet;
typedef struct _GtkBindingEntry GtkBindingEntry;
typedef struct _GtkBindingSignal GtkBindingSignal;
NULL);
gtk_object_ref (GTK_OBJECT (ifactory));
gtk_object_sink (GTK_OBJECT (ifactory));
- gtk_signal_connect_object_while_alive (GTK_OBJECT (ifactory->widget),
+ /*
+ gtk_signal_connect_object_while_alive (GTK_OBJECT (ifactory->widget),
"destroy",
- GTK_SIGNAL_FUNC (gtk_widget_destroy),
+ GTK_SIGNAL_FUNC (gtk_object_destroy),
GTK_OBJECT (ifactory));
+ */
gtk_item_factory_add_item (ifactory,
"", NULL,
NULL, 0, NULL, 0,
CLIENT_EVENT,
NO_EXPOSE_EVENT,
VISIBILITY_NOTIFY_EVENT,
+ DEBUG_MSG,
LAST_SIGNAL
};
*
* results:
*****************************************/
+#include "stdio.h"
+static void
+gtk_widget_debug_msg (GtkWidget *widget,
+ const gchar *string)
+{
+ fprintf (stderr, "Gtk-DEBUG: %s\n", string);
+}
static void
gtk_widget_class_init (GtkWidgetClass *klass)
gtk_widget_marshal_signal_4,
GTK_TYPE_BOOL, 1,
GTK_TYPE_GDK_EVENT);
+ widget_signals[DEBUG_MSG] =
+ gtk_signal_new ("debug_msg",
+ GTK_RUN_LAST | GTK_RUN_ACTION,
+ object_class->type,
+ GTK_SIGNAL_OFFSET (GtkWidgetClass, debug_msg),
+ gtk_widget_marshal_signal_1,
+ GTK_TYPE_NONE, 1,
+ GTK_TYPE_STRING);
gtk_object_class_add_signals (object_class, widget_signals, LAST_SIGNAL);
klass->drop_enter_event = NULL;
klass->drop_leave_event = NULL;
klass->drop_data_available_event = NULL;
- klass->other_event = NULL;
klass->no_expose_event = NULL;
+ klass->other_event = NULL;
+
+ klass->debug_msg = gtk_widget_debug_msg;
/* bindings test
*/
GtkBindingSet *binding_set;
binding_set = gtk_binding_set_by_class (klass);
- gtk_binding_entry_add_signal (binding_set, '9', GDK_CONTROL_MASK|GDK_RELEASE_MASK, "hide", 0);
- gtk_binding_entry_add_signal (binding_set, '9', GDK_CONTROL_MASK|GDK_RELEASE_MASK, "show", 0);
+ gtk_binding_entry_add_signal (binding_set,
+ '9', GDK_CONTROL_MASK | GDK_RELEASE_MASK,
+ "debug_msg",
+ 1,
+ GTK_TYPE_STRING, "GtkWidgetClass test");
}
}
/* selection */
void (* selection_received) (GtkWidget *widget,
GtkSelectionData *selection_data);
+
+ /* action signals */
+ void (* debug_msg) (GtkWidget *widget,
+ const gchar *string);
};
struct _GtkWidgetAuxInfo